home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / macros / less.vim < prev    next >
Encoding:
Text File  |  2001-08-06  |  3.0 KB  |  171 lines

  1. " Vim script to work like "less"
  2. " Maintainer:    Bram Moolenaar <Bram@vim.org>
  3. " Last Change:    2001 May 03
  4.  
  5. set nocp
  6. syntax on
  7. set so=0
  8. set hlsearch
  9. set incsearch
  10. nohlsearch
  11.  
  12. " Used after each command: put cursor at end and display position
  13. if &wrap
  14.   noremap <SID>L L0:file<CR>
  15.   au VimEnter * normal L0
  16. else
  17.   noremap <SID>L Lg0:file<CR>
  18.   au VimEnter * normal Lg0
  19. endif
  20.  
  21. " When reading from stdin don't consider the file modified.
  22. au VimEnter * set nomod
  23.  
  24. " Can't modify the text
  25. set noma
  26.  
  27. " Give help
  28. noremap h :call <SID>Help()<CR>
  29. map H h
  30. fun! s:Help()
  31.   echo "<Space>   One page forward          b         One page backward"
  32.   echo "d         Half a page forward       u         Half a page backward"
  33.   echo "<Enter>   One line forward          k         One line backward"
  34.   echo "G         End of file               g         Start of file"
  35.   echo "N%        percentage in file"
  36.   echo "\n"
  37.   echo "/pattern  Search for pattern"
  38.   echo "n         next pattern match        N         Previous pattern match"
  39.   echo "\n"
  40.   echo ":n<Enter> Next file                 :p<Enter> Previous file"
  41.   echo "\n"
  42.   echo "q         Quit                      v         Edit file"
  43.   let i = input("Hit Enter to continue")
  44. endfun
  45.  
  46. " Scroll one page forward
  47. noremap <script> <Space> :call <SID>NextPage()<CR><SID>L
  48. map <C-V> <Space>
  49. map f <Space>
  50. map <C-F> <Space>
  51. map z <Space>
  52. map <Esc><Space> <Space>
  53. fun! s:NextPage()
  54.   if line(".") == line("$")
  55.     if argidx() + 1 >= argc()
  56.       quit
  57.     endif
  58.     next
  59.     1
  60.   else
  61.     exe "normal! \<C-F>"
  62.   endif
  63. endfun
  64.  
  65. " Re-read file and page forward "tail -f"
  66. map F :e<CR>G<SID>L:sleep 1<CR>F
  67.  
  68. " Scroll half a page forward
  69. noremap <script> d <C-D><SID>L
  70. map <C-D> d
  71.  
  72. " Scroll one line forward
  73. noremap <script> <CR> <C-E><SID>L
  74. map <C-N> <CR>
  75. map e <CR>
  76. map <C-E> <CR>
  77. map j <CR>
  78. map <C-J> <CR>
  79.  
  80. " Scroll one page backward
  81. noremap <script> b <C-B><SID>L
  82. map <C-B> b
  83. map w b
  84. map <Esc>v b
  85.  
  86. " Scroll half a page backward
  87. noremap <script> u <C-U><SID>L
  88. noremap <script> <C-U> <C-U><SID>L
  89.  
  90. " Scroll one line backward
  91. noremap <script> k <C-Y><SID>L
  92. map y k
  93. map <C-Y> k
  94. map <C-P> k
  95. map <C-K> k
  96.  
  97. " Redraw
  98. noremap <script> r <C-L><SID>L
  99. noremap <script> <C-R> <C-L><SID>L
  100. noremap <script> R <C-L><SID>L
  101.  
  102. " Start of file
  103. noremap <script> g gg<SID>L
  104. map < g
  105. map <Esc>< g
  106.  
  107. " End of file
  108. noremap <script> G G<SID>L
  109. map > G
  110. map <Esc>> G
  111.  
  112. " Go to percentage
  113. noremap <script> % %<SID>L
  114. map p %
  115.  
  116. " Next pattern
  117. noremap <script> n n<SID>L
  118. noremap <script> N N<SID>L
  119.  
  120. " Quitting
  121. noremap q :q<CR>
  122.  
  123. " Switch to editing (switch off less mode)
  124. map v :call <SID>End()<CR>
  125. fun! s:End()
  126.   set ma
  127.   unmap h
  128.   unmap H
  129.   unmap <Space>
  130.   unmap <C-V>
  131.   unmap f
  132.   unmap <C-F>
  133.   unmap z
  134.   unmap <Esc><Space>
  135.   unmap F
  136.   unmap d
  137.   unmap <C-D>
  138.   unmap <CR>
  139.   unmap <C-N>
  140.   unmap e
  141.   unmap <C-E>
  142.   unmap j
  143.   unmap <C-J>
  144.   unmap b
  145.   unmap <C-B>
  146.   unmap w
  147.   unmap <Esc>v
  148.   unmap u
  149.   unmap <C-U>
  150.   unmap k
  151.   unmap y
  152.   unmap <C-Y>
  153.   unmap <C-P>
  154.   unmap <C-K>
  155.   unmap r
  156.   unmap <C-R>
  157.   unmap R
  158.   unmap g
  159.   unmap <
  160.   unmap <Esc><
  161.   unmap G
  162.   unmap >
  163.   unmap <Esc>>
  164.   unmap %
  165.   unmap p
  166.   unmap n
  167.   unmap N
  168.   unmap q
  169.   unmap v
  170. endfun
  171.